Build123d: BuildSketchをwith文のLocationsで移動・複製することが出来ない
解決策: BuildSketchの第一引数にLocationを入れることで移動できる
自分はLocationsを複製に使ってないなぁikeji.icon
単に移動したい時とかも使うのかなと思ってましたが、他のやり方がありますか?inajob.icon
BuildSketchの引数にLocationを渡すとSketchの基準面を移動できることに気づいた、これを使うのが普通?
Partsの平行移動はどうするのが普通?
自分は、Locationsに1つだけ引数を渡して、移動に使ってますね。ikeji.icon
いや、そういう問題じゃない?
手元にあった古いバージョンだと意図通り動くけど、最新版にバージョンアップしたら動かなくなった。今のバージョンのバグ?
お、バグっぽい気はしたのですが、なにぶん初めてなもので、こういう挙動なのか悩んでいましたinajob.icon
以下のコードとその実行結果がikeji.iconさんから見てもおかしいと感じるなら、自分の理解が合ってそうですね
自分の利用しているバージョンも書いておきました
BuildSketchをwith文を使ったLocationsの中に書いても反映されない?
BuildSketchの引数にLocationを入れるのはOK
そういう仕様っぽい?
Partの複製はわかる
code: python
with BuildPart() as part:
with Locations((0,0),(2,0)):
Box(1,1,1)
https://scrapbox.io/files/645ee340799cd7001c913d60.png
Sketchも複製も理解した
code: python
with BuildSketch():
with Locations((0,0),(2,0)):
Rectangle(1,1)
extrude(amount=1)
https://scrapbox.io/files/645ee3718c27a3001bc95ea0.png
これはPartの複製ではないの?
なんか妙にでかい立体が出来た、エラーにもならない
code: python
with Locations((0,0,0),(2,0,0)):
with BuildSketch():
Rectangle(1,1)
extrude(amount=1)
https://scrapbox.io/files/645ee3a6f459df001c97b57f.png
こうすれば意図通り?
code: python
def sk():
with BuildPart() as part:
with BuildSketch():
Rectangle(1,1)
extrude(amount=1)
return part.part
with BuildPart() as part:
with Locations((0,0),(2,0)):
add(sk())
https://scrapbox.io/files/645ee4cc66811f001b580281.png
単に移動のためにLocationsを使ってもおかしくなることがある
code: python
with BuildPart() as part:
with Locations((2,0,0)):
with BuildSketch():
Rectangle(1,1)
extrude(amount=1)
https://scrapbox.io/files/645f36f4c47217001b983c7c.png
Sketchの中でLocationsを使えばおかしくならないが、Sketchの外でLocationsを使うとおかしくなる